﻿using System;
using System.Windows.Controls;
using System.Collections.Generic;
using System.Windows;
using System.Linq;
using System.Windows.Media;
using WPF.MDI;
using SIMA.Core.Security;
using SIMA.Mvvm;
using SIMA.Client.Mantenimiento;
using SIMA.Client.Programacion;
using SIMA.Client.Consultas;
using SIMA.Client.Trabajos_de_Mantenimiento;
using SIMA.Client.Seguridad;
using SIMA.Mvvm.Gestiones;


namespace SIMA.Client
{
    /// <summary>
    /// Lógica de interacción para Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        #region Fields

        private List<string> open;
        private string tempTag = string.Empty;
        private Profile perfil;
        private MvvmPrincipal principalMvvm;
        private MvvmGestionarPerfil perfilMvvm;

        private frmIniciarSesion frmIniciarSesion;

        #endregion

        #region Constructor

        public Window1()
        {
            InitializeComponent();
            Init();
        }

        #endregion        

        #region Private Methods

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {

            perfil = new Profile();
            AppDomain.CurrentDomain.SetData("PcProfile", perfil);
            Presentacion presentacion = new Presentacion();
            presentacion.ShowDialog();
            //frmIniciarSesion = new frmIniciarSesion(principalMvvm);
            //frmIniciarSesion.HorizontalAlignment = HorizontalAlignment.Stretch;
            //frmIniciarSesion.VerticalAlignment = VerticalAlignment.Stretch;
            //PanelContainer.Children.Add(frmIniciarSesion);            
        }

        private void Init()
        {
            open = new List<string>();
            principalMvvm = new MvvmPrincipal();
            LayoutRoot.DataContext = principalMvvm;
            perfilMvvm = new MvvmGestionarPerfil();
            //perfilMvvm.GetPerfiles();
            
        }
        
        private void ShowOnContainer(string tag, ImageSource icon)
        {
            MdiChild child = new MdiChild();
            child.Width = 655;
            child.Height = 350;
            child.Closed += new RoutedEventHandler(child_Closed);
            child.Title = tag;
            child.Icon = icon;
            child.ShowIcon = true;

            switch (tag)
            {
                case "Reportar Incidencia de Equipo":
                    frmReportarIncidencia frmIncidencia = new frmReportarIncidencia();
                    child.Content = frmIncidencia;
                    break;
                case "Solicitud de Mantenimiento":
                    frmSolicitarMantenimiento frmSolicitud = new frmSolicitarMantenimiento();
                    child.Content = frmSolicitud;
                    break;
                case "Administración de Área de Equipos":
                    frmAdminArea frmAdminArea = new frmAdminArea();
                    child.Content = frmAdminArea;
                    break;
                case "Administración de Tablas del Sistema":
                    frmAdminTabla frmAdminTabla = new frmAdminTabla();
                    child.Content = frmAdminTabla;
                    break;
                case "Administración de Equipos":
                    frmGestionarEquipo frmGestionarEquipo = new frmGestionarEquipo();
                    child.Content = frmGestionarEquipo;
                    break;
                case "Administración de Marcas de Equipos":
                    frmAdminMarca frmAdminMarca = new frmAdminMarca();
                    child.Content = frmAdminMarca;
                    break;
                case "Consulta de Equipos a Mantener":
                    frmConsultarEquiposAMantener frmConsultarEquiposAMantener = new frmConsultarEquiposAMantener();
                    child.Content = frmConsultarEquiposAMantener;
                    break;
                case "Ver histórico de mantenimientos por equipos":
                    frmConsultarHistoricosDeMantenimiento frmConsultarHistoricosDeMantenimiento = new frmConsultarHistoricosDeMantenimiento();
                    child.Content = frmConsultarHistoricosDeMantenimiento;
                    break;
                case "Administrar Tipo de Mantenimientos":
                    frmGestionarTiposDeMantenimiento frmGestionarTiposDeMantenimiento = new frmGestionarTiposDeMantenimiento();
                    child.Content = frmGestionarTiposDeMantenimiento;
                    break;
                case "Administrar Tipo de Mantenimientos por Equipo":
                    frmGestionarTiposDeMantenimientoPorEquipo frmGestionarTiposDeMantenimientoPorEquipo = new frmGestionarTiposDeMantenimientoPorEquipo();
                    child.Content = frmGestionarTiposDeMantenimientoPorEquipo;
                    break;
                case "Administración de Perfiles":
                    frmAdminPerfil frmAdminPerfil = new frmAdminPerfil();
                    child.Content = frmAdminPerfil;
                    break;
                case "Asignar Equipos a Mantener":
                    frmAsignarEquiposAMantener frmAsignarEquiposAMantener = new frmAsignarEquiposAMantener();
                    child.Content = frmAsignarEquiposAMantener;
                    break;
                case "Administración de Usuarios del Sistema":
                    frmAdminUsuario frmAdminUsuario = new frmAdminUsuario();
                    child.Content = frmAdminUsuario;
                    break;
            }
            open.Add(tag);
            mdiParentContainer.AddChild(child);
            
            //MessageBox.Show(string.Concat("Ya se encuentra usando la pantalla ", tag),"Advertencia",MessageBoxButton.OK, MessageBoxImage.Information);
        
        
        }

        void child_Closed(object sender, RoutedEventArgs e)
        {
            
        }

        #endregion

        #region Paquete de Mantenimientos

        private void btnConsultaMantenimientosDelDia_Click(object sender, RoutedEventArgs e)
        {
            MdiChild child = new MdiChild();
            child.Title = (sender as Fluent.Button).Tag.ToString();
            child.Content = new ConsultaMantenimientosDelDia();
            mdiParentContainer.AddChild(child);
        }

        private void btnReportarIncidencias_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(),(sender as Fluent.Button).LargeIcon);
        }

        private void btnSolicitarMantenimiento_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(),(sender as Fluent.Button).LargeIcon);
        }

        #endregion

        #region Administraciones

        private void btnAdministrarAreas_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnAdministrarTablas_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnAdministrarEquipos_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnAdminMarcas_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnConsultaEquiposAMantener_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnConsultarHistorioDeEquipos_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnHistoricoMantenimiento_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnTiposDeMantenimientos_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnTipoMantenimientoPorEquipo_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnAdminPerfiles_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        private void btnAdministrarUsuarios_Click(object sender, RoutedEventArgs e)
        {
            ShowOnContainer((sender as Fluent.Button).Tag.ToString(), (sender as Fluent.Button).LargeIcon);
        }

        #endregion  

       

        

        

        

        
       
    }
}
